<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>类的本质</title>
</head>

<body>
    <script>
        //  类本质上还是一个函数（构造函数） 类是构造函数的语法糖
        // es6之前  通过构造函数 + 原型 实现面向对象 编程
        // 构造函数的特点
        // 1.构造函数有prototype原型对象
        // 2.构造函数原型对象prototype里面有constructor指向构造函数本身
        // 3.构造函数可以通过原型对象添加方法
        // 4.构造函数创建的实例对象有__proto__原型 指向构造函数的原型对象prototype

        // es6 通过类面向对象编程
        class Star {
            // constructor() {

            // }
        }
        Star.prototype.sing = function () {
            console.log('唱歌');
        }
        var ldh = new Star()

        console.log(Star.prototype);
        console.log(Star.prototype.constructor);
        console.dir(ldh);
        console.log(ldh.__proto__ === Star.prototype);

    </script>
</body>

</html>